package fileinputstream;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * Created by 5406160@qq.com on LiBoWen 李博闻.
 *
 * @ClassName : FileInputStreamDemo2
 * @Author : 54061
 * @Date: 2022/2/14 9:05
 */
public class FileInputStreamDemo2 {
    public static void main(String[] args) throws IOException {
        //读一次一个字节数组
        FileInputStream fis = new FileInputStream("T_Day17\\aaa\\FileOutputStreamDemo1.java");

        //定义一个byte字节数组 动态初始化 -> 用来存读到数据
        byte[] bys = new byte[1024];
        //定义一个统计变量 int len -> 用来统计每次读到了多少个字节
        int len;

        //循环读
        /*
            1. fis.read(bys) 读数据 读到数组中
            2. len = fis.read(bys) : 统计读了多少个数据
            3. len != -1 : 如果数量不是-1 说明读到了数据
         */
        while((len = fis.read(bys)) != -1){
            //输出 -> 不能换行,读了多少输出多少
            System.out.print(new String(bys, 0, len));
        }

        fis.close();
    }

    public static void method(FileInputStream fis) throws IOException {
        //int read(byte[] b) : 一次读一个字节数组
        byte[] bys = new byte[5];
        //一次读一个字节数组的读的方法中 int 返回值 表示的是: 每一次读到的字节个数
        int len = fis.read(bys);
        System.out.println(new String(bys,0,len));//Hello
        System.out.println("len = " + len);//5

        //第二次读
        len = fis.read(bys);
        System.out.println(new String(bys,0,len));//\r\nWor
        System.out.println("len = " + len);//5

        //第三次读
        len = fis.read(bys);
        //要求读了多少转多少
        System.out.println(new String(bys,0,len));//ld
        System.out.println("len = " + len);//2
    }
}
